#!/bin/sh
# This is developed by laojifuli to do hardware check
#System disk controller type

#此脚本旨在简化model.conf参数获取过程，尚未验证是否适合所有机型或安装方式，如按获取的参数启动失败，请尝试常规方式获取参数！

echo
echo "每个类型的DEV_BUS参数为："
echo

CONTROLLER="SATA"

DEV_BUS=$(lspci | grep "${CONTROLLER}")
if [ "x${DEV_BUS}" = "x" ]; then
    echo "no SATA controller exist."
    
    exit 1
fi

DEV_BUS=$(echo ${DEV_BUS} | cut -d' ' -f1)
MYBUS=$(echo ${DEV_BUS} | cut -d':' -f1)
DEV_BUS=$(echo ${DEV_BUS} | cut -d':' -f2)
MYDEV=$(echo ${DEV_BUS} | cut -d'.' -f1)
MYFUNC=$(echo ${DEV_BUS} | cut -d'.' -f2)
DEV_BUS=$(printf "DEV_BUS=B%02d:D%02d:F%0d" "0x$MYBUS" "0x$MYDEV" "0x$MYFUNC")

echo
echo [System Disk] SATA类型
echo $DEV_BUS
echo "=================="

CONTROLLER="IDE"

DEV_BUS=$(lspci | grep "${CONTROLLER}")
if [ "x${DEV_BUS}" = "x" ]; then
    echo "no IDE controller exist."

    exit 1
fi

DEV_BUS=$(echo ${DEV_BUS} | cut -d' ' -f1)
MYBUS=$(echo ${DEV_BUS} | cut -d':' -f1)
DEV_BUS=$(echo ${DEV_BUS} | cut -d':' -f2)
MYDEV=$(echo ${DEV_BUS} | cut -d'.' -f1)
MYFUNC=$(echo ${DEV_BUS} | cut -d'.' -f2)
DEV_BUS=$(printf "DEV_BUS=B%02d:D%02d:F%0d" "0x$MYBUS" "0x$MYDEV" "0x$MYFUNC")

echo [System Disk] IDE类型
echo $DEV_BUS
echo "=================="


CONTROLLER="Ethernet"

DEV_BUS=$(lspci | grep "${CONTROLLER}")
if [ "x${DEV_BUS}" = "x" ]; then
    echo "no Ethernet controller exist."

    exit 1
fi

DEV_BUS=$(echo ${DEV_BUS} | cut -d' ' -f1)
MYBUS=$(echo ${DEV_BUS} | cut -d':' -f1)
DEV_BUS=$(echo ${DEV_BUS} | cut -d':' -f2)
MYDEV=$(echo ${DEV_BUS} | cut -d'.' -f1)
MYFUNC=$(echo ${DEV_BUS} | cut -d'.' -f2)
DEV_BUS=$(printf "DEV_BUS=B%02d:D%02d:F%0d" "0x$MYBUS" "0x$MYDEV" "0x$MYFUNC")

echo [System Network]
echo $DEV_BUS
echo "=================="
CONTROLLER="USB"

DEV_BUS=$(lspci | grep "${CONTROLLER}")
if [ "x${DEV_BUS}" = "x" ]; then
    echo "no USB controller exist."

    exit 1
fi

DEV_BUS=$(echo ${DEV_BUS} | cut -d' ' -f1)
MYBUS=$(echo ${DEV_BUS} | cut -d':' -f1)
DEV_BUS=$(echo ${DEV_BUS} | cut -d':' -f2)
MYDEV=$(echo ${DEV_BUS} | cut -d'.' -f1)
MYFUNC=$(echo ${DEV_BUS} | cut -d'.' -f2)
DEV_BUS=$(printf "DEV_BUS=B%02d:D%02d:F%0d" "0x$MYBUS" "0x$MYDEV" "0x$MYFUNC")

echo [Usb Port]
echo $DEV_BUS
echo "=================="

echo
echo [Boot Enclosure] 段 DEV_PORT 参数
echo
echo 请根据下表第三列显示各盘容量（单位为Kb,除1000,000为Gb），确定你的引导盘是哪个盘，sda,sdb,或sdc,并清楚你的引导盘类型为USB或SATA,
echo 按底部提示正确输入
echo
echo "                 "容量/Kb  硬盘/分区
echo -------------------------------------
cat /proc/partitions|grep -E 'sd'
#VOLUME=$(cat /proc/partitions|grep -E 'sd')
#8 0 16777216 sda 8 1 65536 sda1 8 2 307200 sda2 8 3 307200 sda3 8 4 1 sda4 8 5 8192 sda5 8 6 8192 sda6 8 7 348160 sda7 8 16 335544320 sdb 8 32 524288000 sdc
#echo ${VOLUME} | cut -d " " -f3-4
#echo ${VOLUME} | cut -d " " -f7-8





echo
read -p "请输入你的引导盘(sda/sdb/sdc)：" bootdisk
read -p "请输入你的引导盘类型(usb/sata)：" boottype
echo
echo "你输入的是<引导盘为$bootdisk 引导盘类型为$boottype>"
echo 结果为：
echo

DEV_PORT=$(ls -al /sys/block/"$bootdisk")

if [ "$boottype" = "usb" ]; 
then
    DEV_PORT=$(echo ${DEV_PORT} | cut -d"/" -f9)
	DEV_PORT=$(echo ${DEV_PORT} | cut -c3)
	DEV_PORT=$(printf "DEV_PORT=$DEV_PORT")

echo $DEV_PORT
echo "=================="
echo 请按以上信息，正确修改model.conf文件，并继续创建威联通启动盘！

elif [ "$boottype" = "sata" ]; 
then
    DEV_PORT=$(echo ${DEV_PORT} | cut -d"/" -f10)
	DEV_PORT=$(echo ${DEV_PORT} | cut -c5)
	DEV_PORT=$(printf "DEV_PORT=$DEV_PORT")

echo $DEV_PORT
echo "=================="
echo 请按以上信息，正确修改model.conf文件，并继续创建威联通启动盘！

else

echo 请检查输入内容，并重新运行./getconf

fi


